package com.jinbei.mapper;

import com.jinbei.domain.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @author zflu
 */
public interface UserMapper {

    /**
     * @author zflu
     * @Description   根据用户id删除User
     * @date 2018/7/9 14:01
     * @param userId
     * @return int
     */
    int deleteUserByUserId(Integer userId);

    /**
     * @author zflu
     * @Description   新增用户
     * @date 2018/7/9 14:04
     * @param user
     * @return int
     */
    int insertUser(User user);

    /**
     * @author zflu
     * @Description   根据用户id查询User
     * @date 2018/7/9 13:57
     * @param userId
     * @return com.jinbei.domain.User
     */
    User queryUserByUserId(Integer userId);

    /**
     * @author zflu
     * @Description   更新用户
     * @date 2018/7/9 14:08
     * @param user
     * @return int
     */
    int updateUser(User user);

    /**
     * @author zflu
     * @Description 查询被锁定的用户
     * @date 2018/7/9 14:11
     * @param
     * @return java.util.Map
     */
    List<Integer> queryUserByLock();

    /**
     * @author zflu
     * @Description 解锁或者上锁用户
     * @date 2018/7/9 14:36
     * @param userId
     * @param status 锁的状态
     * @return int
     */
    int lockOrUnLockUser(@Param("userId") int userId, @Param("status") String status);

    /**
     * @author zflu
     * @Description   登录验证账号密码是否正确
     * @date 2018/7/10 10:42
     * @param loginName, password
     * @return com.jinbei.domain.User
     */
    User queryLoginUser(@Param("loginName") String loginName,@Param("password") String password);

    /**
     * @author zflu
     * @Description   根据用户id查询授权接口
     * @date 2018/7/10 13:33
     * @param userId
     * @return java.lang.String
     */
    String queryUserAuthorUrl(Integer userId);
    
    /**   
     * @author zflu
     * @Description  用户分页列表
     * @date 2018/7/11 17:06  
     * @param
     * @return java.util.List<com.jinbei.domain.User>  
     */ 
    List<User> queryUserPage();

    /**
     * @author zflu
     * @Description   根据用户名称查询用户
     * @date 2018/7/19 9:45
     * @param loginName
     * @return com.jinbei.domain.User
     */
    User queryUserByLoginName(String loginName);

    /**
     * @author zflu
     * @Description   修改用户密码
     * @date 2018/8/3 11:17
     * @param loginName 登录账号
     * @param password 新密码
     * @return int
     */
    int updateUserPassword(@Param("loginName") String loginName
            , @Param("password") String password
            , @Param("newPassword") String newPassword);

    /**
     * @author zflu
     * @Description
     * @date 2018/8/7 13:24
     * @param roles  授权id
     * @param userId 用户id
     * @return int
     */
    int updateUserRoles(@Param("roles") String roles, @Param("userId") String userId);

    /**
     * @author zflu
     * @Description   根据部门id查询用户
     * @date 2018/8/9 13:52
     * @param id
     * @return java.util.List<com.jinbei.domain.User>
     */
    List<User> queryUserListByDeptId(@Param("id") Integer id);
}